from sqlalchemy.orm import Session

from app.models.file_info import FileInfoDo
from app.schemas.file_info import FileInfoVo


def query_file_ids(db: Session, file_ids: list[int]) -> dict[int, FileInfoVo]:
    """根据id批量查询"""
    if not file_ids:
        return dict()
    file_infos = db.query(FileInfoDo).filter(
        FileInfoDo.file_id.in_(file_ids)).all()
    return {
        file.file_id: file for file in (FileInfoVo.model_validate(f) for f in file_infos)
    }


def query_file_id(db: Session, file_id: int) -> FileInfoVo:
    """根据id查询"""
    file_info = db.query(FileInfoDo).filter(
        FileInfoDo.file_id(file_id)).all()
    return FileInfoVo.model_validate(file_info)
